class Person:
  def _init_(self, name, age, gender):
  #实例属性
    self.name = name
    self.age = age
    self.gender = gender

  #实例方法
  def introduce(self):
   return f"大家好，我叫{self.name}，今年{self.age}岁，是{self.gender}生。"

#学生类，继承自Person类
class Student(Person):
  def _init_(self, name, age, gender, student_id, grade):
  #调用父类的构造方法
   super().__init_(name, age, gender)
   self.student_id = student_id
   self.grade = grade
   self.courses =[]#学生选修的课程

#重写父类方法（多态)
  def introduce(self):
   return f"大家好，我叫{self.name}，是{self.grade}年级的学生，学号是{self.student_id}。"
  
#学生特有的方法
  def enroll_course(self, course):
   if course not in self.courses:
     self.courses.append(course)
     course.add_student(self)
     return f"{self.name}成功选修了{course.name}课程"
   return f"{self.name}已经选修了{course.name}课程"
  
  def list_courses(self):
   if self.courses:
     course_names = [course.name for course in self.courses]
     return f"{self.name}选修的课程有：{'，'.join(course_names)}"
   return f"{self.name}还没有选修任何课程"
  
